私はC#で初めて、ポイントで作業するC言語の新しい人です。ループ内のセグメンテーションフォールト
私は将来にmalloc()
、realloc()
とfree()
で動作します。この機能を持っている:私が呼ぶとき
char ** split(char * delimiter, char * input) {
int i = 0;
int size = sizeof(char *);
char ** tokens;
char * token;
char * state;
tokens = (char **) malloc(size);
if(tokens == NULL) {
printf("Allocation failed.");
return;
}
for(token = strtok_r(input, delimiter, &state);
token != NULL;
token = strtok_r(NULL, delimiter, &state),
i++, size *= i) {
tokens = (char **) realloc(tokens, size);
if(tokens == NULL) {
printf("Realloc failed.");
return;
}
tokens[i] = state;
}
return tokens;
}
を:
char * IPNumber = "127.0.01";
char * delimiter = ".";
char ** parts = split(delimiter, IPNumber);
それはsegmentation fault
を与えます。
realloc()
関数の2番目の引数で使用するサイズ値を取得(計算)する方法を探しています。前もって感謝します。
あなたがしようとしていることを説明すると、より良い回答が得られます。 – IanGilham
どのように関数を呼び出していますか? – cnicutar
IanGilham、cnicutar私の編集を参照してください –