c - 使用字符指针复制字符串时出错

标签 c string pointers

我正在使用字符指针实现字符串复制功能,但它显示错误。这是代码:

#include<stdio.h>
#include<string.h>
int main()
{
    char *s="abc";
    char *t;
    while((*s)!='\0')
    {
        *t++=*s++;
    }
    *t='\0';
    printf("%s\n",t);
    return 0;
}

最佳答案

char *t;

没有内存分配给你的指针,你正试图写入它会导致未定义的行为。所以分配内存

char *t = malloc(30); /* size of your choice or strlen(s) + 1*/

一旦使用完内存,使用

释放它
free(t);

关于c - 使用字符指针复制字符串时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28380998/

相关文章:

javascript - 我可以保存一个文件,该文件将仅使用 javascript/C/C++ 在服务器端从 php 代码生成,并且没有打开浏览器吗?

MySQL C API mysql_query

c - 在c中将 float 除以整数时得到整数结果

c - GCC 中用于除法的 SIMD (SSE) 指令

string - R:字符串上的ifelse

字符串数组的 C 数组

c - void 指向结构的指针导致错误 'dereferencing ' void *' pointer'

python - "How to Think Like a Computer Scientist (python)"中的练习 7.9 测量字符串中某个字符的出现次数

python - 在行 pandas python 上使用部分字符串匹配返回 DataFrame 项

c - 如何将字符串分配给 char* 指针?