avatar
再问一个free()的问题# Programming - 葵花宝典
l*n
1
If I put website like www.yahoo.com on my website for some reason, do I
violate the copyright of yahoo?
Please put your comment!
Thanks
avatar
p*n
2
c语言中free要和malloc或者calloc等配合使用.
如果我先a=(double *)malloc(10*sizeof(double))
然后 double *b=a+5;
free(b)会不会把a指向的内存都释放了?
一直搞不明白free是怎么知道要free的内存大小.
avatar
c*c
3

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
???

【在 l****n 的大作中提到】
: If I put website like www.yahoo.com on my website for some reason, do I
: violate the copyright of yahoo?
: Please put your comment!
: Thanks

avatar
T*9
4
会段错误的

【在 p*******n 的大作中提到】
: c语言中free要和malloc或者calloc等配合使用.
: 如果我先a=(double *)malloc(10*sizeof(double))
: 然后 double *b=a+5;
: free(b)会不会把a指向的内存都释放了?
: 一直搞不明白free是怎么知道要free的内存大小.

avatar
b*8
5
What you mean by put yahoo.com on your site? You mean search or just a link?
avatar
p*n
6
多谢. 发现free()之后还可以对原来的内存访问,free的作用到底是什么?
#include
#include
char *mkarray()
{
char *a;
a=(char *)malloc(4*sizeof(char));
a[0]='a';a[1]='r';a[2]='e';a[3]='y';
return (a);
}
int main()
{
char *b,*c;
b=mkarray();
c=b+2;
free(b);
printf("%c %c %c %c\n",b[0],b[1],b[2],b[3]);
printf("%c %c \n",c[0],c[1]);
return 0;
}
输出结果是
a r e y
e y

【在 T*****9 的大作中提到】
: 会段错误的
avatar
b*u
7
you can put my site on your page, I don't mind. :)
avatar
h*e
8
the heap allocator records the size of the memory block so that you dont
need to specify the size when freeing it. you can read more about the heap
management.

【在 p*******n 的大作中提到】
: c语言中free要和malloc或者calloc等配合使用.
: 如果我先a=(double *)malloc(10*sizeof(double))
: 然后 double *b=a+5;
: free(b)会不会把a指向的内存都释放了?
: 一直搞不明白free是怎么知道要free的内存大小.

avatar
l*n
9
Yes, Just a Link.
avatar
h*e
10
behavior undefined if you access it after freeing. likely to crash if you do
other malloc/free.

【在 p*******n 的大作中提到】
: 多谢. 发现free()之后还可以对原来的内存访问,free的作用到底是什么?
: #include
: #include
: char *mkarray()
: {
: char *a;
: a=(char *)malloc(4*sizeof(char));
: a[0]='a';a[1]='r';a[2]='e';a[3]='y';
: return (a);
: }

avatar
I*y
11
if you rip off other people's post without permission, that would be
copyrigh
t infringement. What do you mean you put yahoo.com on your site??

【在 l****n 的大作中提到】
: If I put website like www.yahoo.com on my website for some reason, do I
: violate the copyright of yahoo?
: Please put your comment!
: Thanks

avatar
p*n
12
Thanks a lot.

do

【在 h*******e 的大作中提到】
: behavior undefined if you access it after freeing. likely to crash if you do
: other malloc/free.

avatar
T*9
13
free之后要对free的指针清NULL

【在 p*******n 的大作中提到】
: 多谢. 发现free()之后还可以对原来的内存访问,free的作用到底是什么?
: #include
: #include
: char *mkarray()
: {
: char *a;
: a=(char *)malloc(4*sizeof(char));
: a[0]='a';a[1]='r';a[2]='e';a[3]='y';
: return (a);
: }

avatar
x*u
14
看一下数据结构里面动态内存分配一节就明白了。
free后内存可以访问不是必然发生的。

【在 p*******n 的大作中提到】
: 多谢. 发现free()之后还可以对原来的内存访问,free的作用到底是什么?
: #include
: #include
: char *mkarray()
: {
: char *a;
: a=(char *)malloc(4*sizeof(char));
: a[0]='a';a[1]='r';a[2]='e';a[3]='y';
: return (a);
: }

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。