我正在研究從bsd的libc函數strtok的代碼,當我在我的機器上運行它時, 程序收到信號SIGSEGV
在s[-1] = 0
。 代碼如下是link。s [-1] = 0是什麼意思?
是s[-1] = 0
對不對?
這是我的代碼:
#include <stdio.h>
#include <stdlib.h>
#include "strtok.c"
int main(int argc, char* argv[]) {
char* str = "xxxx xxxyy fdffd";
const char* s = " ";
char* token = strtok(str, s);
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, s);
}
return 0;
}
是的,沒錯。但是,您的調用代碼可能不是。 –
可能'[-1] = 0'是正確的。可能調用它的代碼是錯誤的。 –
http://www.codinghorror.com/blog/2008/03/the-first-rule-of-programming-its-always-your-fault.html –