我是 C 语言的初学者,我不能很好理解的是 malloc 的使用。所以我决定创建这个例子。我想了解为什么它不打印出缓冲区数据以及执行此操作的最佳做法是什么。
#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;
}
谢谢