<分区>
我有一个问题,想听听您的建议。请帮我。 我正在使用指针编写一些代码。我的代码如下:
#include <stdio.h>
#include <stdlib.h>
void test_pointer (char *t);
int main (){
char *t = "abcdef";
printf("Before excuting func: %s\n", t);
test_pointer(t);
printf("After excuting func: %s\n", t);
return 0;
}
void test_pointer (char *t) {
printf("In function - before allocating: %s\n",t);
t =(char *) malloc(10);
t = "123456789";
printf("In function - after allocating: %s\n",t);
}
在这个 main() 中,我声明了一个 char 指针并让它指向一个字符串“abcdf”(长度为 7)。 但是在 test_pointer() 函数中,我使用 malloc() 为该 char 指针分配一个新的内存分区,然后分配一个新值。这意味着使用此函数后必须更新 char 指针。但实际上并非如此。为什么?
当我执行这段代码时,我得到的是: 执行函数前:abcdef 在函数中 - 分配之前:abcdef 在函数中 - 分配后:123456789 执行完func: abcdef
请帮我弄清楚发生了什么。非常感谢。