相关疑难解决方法(0)

C中的char数组与char指针有什么区别?

我试图理解C中的指针,但我目前对以下内容感到困惑:

将这两个变量都传递给这个函数有什么区别?

void printSomething(char *p)
{
    printf("p: %s",p);
}
Run Code Online (Sandbox Code Playgroud)

c arrays pointers

205
推荐指数
6
解决办法
33万
查看次数

strcat() 实现有效,但最终会导致核心转储

我的实现strcat(char*, const char*)似乎有效,但随后会导致核心转储。

strcat() 执行:

char* strcat(char* dest, const char* src)
{
    char* tmp = dest;
    while(*tmp) ++tmp ;
    while( (*tmp++ = *src++ ) != '\0') ;
    return (dest);
}
Run Code Online (Sandbox Code Playgroud)

代码在int main()那里我打电话的strcat():

char arr3[] = "Mr. ";
char arr4[] = "Smith";
printf("Hello %s!", strcat(arr3, arr4));
Run Code Online (Sandbox Code Playgroud)

它实际上连接了两个字符串并将其打印出来,但仍然导致核心转储。

输出:你好,史密斯先生!中止(核心转储)

我做错了什么?

c coredump strcat

3
推荐指数
1
解决办法
4578
查看次数

关于字符串(C)中的总线错误我感到困惑

我觉得在一个字符串中用C替换两个字符会让人感到困惑.当我将它设置为数组时,它会很好用:

char strBase[8] = "acbdefg";

在这种情况下,我可以交换任何角色.但是当我将其设置为字符串时,它会触发总线错误:

char *strBase = "acbdefg";

非常感谢任何人都可以解释它或给我一些暗示!

c string bus-error

-1
推荐指数
1
解决办法
1079
查看次数

标签 统计

c ×3

arrays ×1

bus-error ×1

coredump ×1

pointers ×1

strcat ×1

string ×1