Khi tôi không gọi chức năng tương tự trong mã tất cả mọi thứ của tôi hoạt động tốt nhưng khi trở về chức năng từ một đệ quy đột nhiên biến pch
là NULL:c strtok trả về NULL sau khi trở về từ đệ quy
void someFunction()
{
char * pch;
char tempDependencies[100*64+100];
strcpy(tempDependencies,map[j].filesNeeded);
pch = strtok(tempDependencies,",");
while (pch != NULL)
{
someFunction(); <- if i comment this out it works fine
pch = strtok (NULL, ",");
}
}
Vì vậy, đối ví dụ khi vòng lặp hoạt động trên chuỗi file2,file3,file4
, nó phân tách chính xác file2
và sửa đổi chuỗi thành file2\\000file3,file4
nhưng lệnh gọi tiếp theo là pch = strtok (NULL, ",");
hiển thị pch
là 0x0
. Có những thứ mà tôi không biết khi gọi đệ quy không?