char []和sprintf分段错误

yas*_*sar 1 c printf char segmentation-fault

这是我的程序的剥离版本.我不明白为什么我在这里得到分段错误.

....
int main(int argc, const char * argv[])
{
    char quit = 0;
    char buffer[100];
    ...
    while (quit == 0) {
        sprintf(buffer,"%s",get_timer_ticks(&mytimer));
        // puts(buffer);
...
}
Run Code Online (Sandbox Code Playgroud)

编辑:顺便说一句,get_timer_ticks返回Uint32.

ala*_*and 5

你应该用

sprintf(buffer,"%u",get_timer_ticks(&mytimer));
Run Code Online (Sandbox Code Playgroud)

%s期望字符串,而不是整数.由于某些随机整数不太可能是类似于以NULL结尾的字符串的有效指针,因此会发生SEGFAULT.