次のような配列があります。
char* arg[1024];
関数に渡す引数を初期化するために、次のことを行っています。
arg = (char**)calloc(1024,sizeof(char*));
ただし、引数を関数に渡すたびに。最終的にセグメンテーション違反が発生します。この関数は基本的に、非常に単純なコマンドから単語の解析を行っています。
void parse(char* buffer, char** arg)
{
while(*buffer!='\0')
{
*arg=buffer;
arg++;
while(*buffer!=' ')
buffer++;
while(*buffer == ' ')
{
*buffer = '\0';
buffer++;
}
}
}
メモリ割り当てに何か問題がありますか? またはポインタを渡しますか?