【发布时间】:2021-06-03 10:06:40
【问题描述】:
#include <stdio.h>
#include <stdlib.h>
char *namefunct(void);
int main(int argc, char *argv[])
{
printf("Hello, %s!!!\n", namefunct()); //namefunct is not returning tmp_name
}
char *namefunct(void)
{
char *name = malloc(sizeof(char) * 10);
scanf("%s", name);
char *tmp_name = name;
free(name);
return tmp_name;
}
输出:你好,!!! //namefunct 没有返回 tmp_name 如何释放 namefunct() 中分配的内存?
【问题讨论】:
-
错误告诉你有什么问题......?
&name_buffer是char**,那么是什么让你认为你可以将其视为int*,至少不用告诉编译器你真的想做这么奇怪的演员表? -
您的
nkfunction 没有返回任何内容,但您将结果分配给了name_buffer。编译器告诉你这是不可能的。 -
您的
nk函数或多或少(基本上更少)想要返回局部变量的地址。你会遇到麻烦,因为函数返回后局部变量会消失。 -
也许你应该说出你想要做什么。
-
函数
nk为什么要把int指针作为参数?
标签: c pointers cs50 custom-function