微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运行代码后没有输出产生空白,一无所获为什么?

如何解决运行代码后没有输出产生空白,一无所获为什么?

运行代码后没有输出。空白,一无所获。有什么问题?

#include <stdio.h>
#include <string.h>

char* foo(){
    char temp[] = "World";
    char *result;
    strcpy(result,temp);
    return result;
}

int main(){
    printf("%s",foo());
    return 0;
}

解决方法

这里的指针 result 没有被分配任何内存。所以,你首先需要为它分配一些内存,否则你会得到一个分段错误。

一种方法是动态分配内存,在这里使用 callocmalloc。它位于 stdlib.h 头文件中。所以,你必须包括它。那么,

char *result = malloc(strlen(temp)+1);

会成功。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。