我试图将一个 const char 数组复制到内存中的某个位置并指向它。
假设我在主编下定义了这个变量:
char *p = NULL;
并将其发送到带有字符串的函数:
myFunc(&p, "Hello");
现在我希望在这个函数的末尾指针指向字母 H 但如果我 puts() 它,它将打印 Hello 。
这是我试图做的:
void myFunc(char** ptr , const char strng[] ) {
*ptr=(char *) malloc(sizeof(strng));
char * tmp=*ptr;
int i=0;
while (1) {
*ptr[i]=strng[i];
if (strng[i]=='\0') break;
i++;
}
*ptr=tmp;
}
我现在知道它是垃圾,但我想了解如何正确地做到这一点,我的想法是分配所需的内存,复制一个字符并使用指针向前移动,等等。
我也尝试通过referenec(如&ptr)制作ptr参数,但由于 lvalue 和 rvalue 的问题而没有成功。
对我来说唯一可以改变的是函数,我不想使用字符串,而是使用字符和练习。
提前感谢您的帮助。