gpt4 book ai didi

c - 使用 char* 的段错误(核心转储)

转载 作者:太空宇宙 更新时间:2023-11-04 00:39:27 24 4
gpt4 key购买 nike

我是 C 语言编程的新手。当我在
试图打印字符串。请帮忙。

#include <stdio.h>
#include <string.h>
int main()
{
char *ptr;
strcpy(ptr, "mystring");
printf( "%s\n", ptr);
return 0;
}

最佳答案

您还没有为您的指针分配任何内存。

char array[MAX_LEN + 1];

char *ptr = array;

strncpy(ptr, "Cadence", MAX_LEN);
ptr[MAX_LEN] = '\0';

printf( "%s\n", ptr);

请注意,strncpy() 可能是一种更安全的复制字符串的方法,因为我们指定了要复制的最大字符数,这使得它更难超出字符串和“涂鸦”内存。

更新 以响应评论:我已经更改了上面的代码以使用稍微更安全的模式。您可能还想研究 strlcpy()(非标准库)。

关于c - 使用 char* 的段错误(核心转储),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14826763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com