-1
私のコードのこの部分は申し込みについてです。ダイナミック2次元配列に文字列を保存するにはどうすればよいですか?
次回プログラムが停止したときに初めてサインアップすることができます。
何が問題ですか?
while (1) { /*usercounter initialized with 0*/
printf("enter your order:\n");
gets(buffer);
order = strtok(buffer, " ");
if (strcmp(order, "signup") == 0) {
usercounter++;
if (usercounter > 50) {
username=realloc(username,usercounter*sizeof(*username));
password=realloc(password, usercounter*sizeof(*password));
}
username[(usercounter - 1)] = (char *)malloc(50*sizeof(char));
strcpy(username[usercounter - 1], strtok(NULL, " "));
password[(usercounter - 1)] = (char *)malloc(50*sizeof(char));
strcpy(password[usercounter - 1], strtok(NULL, "\n"));
free(buffer);
continue;
}
}
[gets()を使用しないでください、危険です](http://stackoverflow.com/q/1694036/2173917)。代わりに['fgets()'](https://linux.die.net/man/3/fgets)を使用してください。 –
'空き(バッファ);'!? – BLUEPIXY
私がここに見るのは、非常に危険なコードと悪用です。私は他のバグを導入することなく修正をカバーするのに十分なほどCに精通していませんが、無料で使用すると、問題が発生し、リファレンスを管理している(カウントしている)ようには見えません。発生する可能性があります。 – gelliott181