я хочу, чтобы разбить строку в C с этим кодом:сегментации при использовании strtok_r
char *search = "+" ;
char *temp1;
char *temp2;
char *saveptr1, *saveptr2 ;
int operand1 ;
int operand2 ;
int result ;
char sumBuff [5][25]
temp1 = strtok_r(sumBuff[sumCounter-1], search, &saveptr1) ;
operand2 = atoi(strtok_r(NULL, search, &saveptr1));
temp2 = strtok_r(temp1, ".", &saveptr2) ;
operand1 = atoi(strtok_r(NULL, ".", &saveptr2)) ;
, но когда я запускаю это в моем основном коде я получаю ошибку сегментации. и это результат трассировки стека:
#0 0x00007ffff7834517 in ??() from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff7830f60 in atoi() from /lib/x86_64-linux-gnu/libc.so.6
#2 0x000000000040108c in plusExec (arg=0x0) at cm.c:112
#3 0x00007ffff7bc4182 in start_thread() from /lib/x86_64-linux-gnu/libpthread.so.0
#4 0x00007ffff78f147d in clone() from /lib/x86_64-linux-gnu/libc.so.6
cm.112
является operand2 = atoi(...)
Как я могу исправить эту ошибку?
Ну, вы шаг через код и изучить переменные в отладчике? Это не полная программа, и вы показываете ссылки на переменные, которые не определены (sumCounter и т. Д.). – OldProgrammer
Сбой в 'atoi()', который не любит получать 'NULL'. Вам нужно проверить, вернул ли 'strtok_r()' NULL'. – EOF
@EOF Вы можете помочь мне больше? Что я должен делать в точности? – EmadSmart