![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
指针
文章平均质量分 61
leukotrichia
正在研究指针和内存分配的问题
展开
-
指针参数是如何传递内存的
如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例1中,Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么? void GetMemory(char *p, int num) { p = (char *)malloc(sizeof(char) * num); } void Test(void) { char *str原创 2008-07-22 13:57:00 · 368 阅读 · 0 评论 -
困扰我很久的字符串和指针的问题
一直搞不明白直接被赋给指针的字符串(p="hello")是以什么形式存储在内存中的,今天终于解决了char *p; p=(char *)malloc(sizeof(p)*10); //P指向新开辟出来的内存区域strcpy(p,"hello"); //在新开辟出的内存区域里填充了字符串"hello". strcpy(p,"hello");的意思是把"hello"所在的内原创 2008-07-26 16:13:00 · 423 阅读 · 0 评论 -
指针和内存可能引发的问题
void GetMemory(char *p) { p = (char *)malloc(100); } void Test(void){ char *str = NULL; GetMemory(str); strcpy(str, "hello world"); printf(str); } 请问运行Test函数会有什么样的结果? 答:程序崩溃。因为GetMemory并不能原创 2008-07-25 17:35:00 · 360 阅读 · 0 评论 -
在C/C++中如何使函数返回数组
Java语言的函数可以轻易的返回一个数组,而C/C++却不能直接返回一个数组。这是由于在C/C++中,数组不是一种类型,因此不能被直接返回。 在C/C++中,一般有两种方法来返回一个数组。 第一种方法: 返回一个指向数组的指针,例如char (*retArray)[10]声明了一个函数retArray,该函数可以返回指向具有10个char元素的数组 例子如下:#include原创 2008-07-25 14:10:00 · 3892 阅读 · 1 评论