memcpy 是 C 语言标准库中的一个函数,用于将一块内存的数据复制到另一块内存。它的函数原型如下:
void* memcpy(void* dest, const void* src, size_t n);
下面是对 memcpy 函数的详细解释:
dest:目标内存的起始地址,即复制后的数据将存储到该地址指向的内存区域。
src:源内存的起始地址,即需要复制的数据所在的内存区域。
n:需要复制的字节数,即要复制的数据的长度。
memcpy 函数的功能是将 src 指向的内存区域中的数据复制到 dest 指向的内存区域中,并返回 dest 的值。它是一种按字节进行复制的原始内存拷贝操作。
下面是使用memcpy将函数里面的参数用指针传出, c语言函数是不允许返回局部变量指针的,因为跑完这个函数,里面的局部变量会被销毁,函数想要返回指针那只能自己开辟内存空间,或者通过参数来传出.
第一钟,通过指针参数传出值
void getmem(int* output) {
int num = 100;
int *p=#
printf("%d\n", *p);
memcpy(output,p, sizeof(int));
}
int main() {
int getnum;
getmem(&getnum);
printf("%d\n", getnum);
return 0;
}
第二种,通过动态分配内存来获得指针返回值
int* getmem() {
int* num = (int*)malloc(sizeof(int));
*num = 100;
return num;
}
int main() {
int* getnum= getmem();
printf("%d\n", *getnum);
free(getnum); // 记得释放内存
return 0;
//在 main 函数中调用 free(getnum) 实际上是释放了 getmem 函数中动态分配的内存空间。
//由于在 getmem 函数中返回了 num 指针,这个指针在 main 函数中被赋值给了 getnum
}
如果这篇文章对你有作用请给我点个赞吧! ! !