我是C語言的初學者,我無法很好理解的是malloc的使用。所以我決定創建這個例子。我想了解爲什麼它不打印出緩衝區數據,以及最佳做法是什麼。爲什麼c指針在這裏不起作用?
#include <stdio.h> /* printf, scanf, NULL */
#include <stdlib.h> /* malloc, free, rand */
void f(char * buffer, int i) {
buffer = (char *) malloc(i+1);
if (buffer==NULL)
exit (1);
for (int n=0; n<i; n++)
buffer[n]=rand()%26+'a';
buffer[i]='\0';
}
int main()
{
char * buffer;
f(buffer, 5);
printf ("Random string: %s\n",buffer);
free (buffer);
return 0;
}
感謝
是否打印 「隨機字符串:」? –
是...它打印 –