Originally posted by 11520327
View Post
Announcement
Collapse
No announcement yet.
con trỏ trong C phần 2 - và các phần tiếp theo
Collapse
X
-
-
Code đầu:
void Tag(int *a)
{
a=new int();
};
-> cấp phát như vậy tức là cấp phát cho biến con trỏ cục bộ (chứ ko phải cấp phát cho biến truyền vào), ra khỏi hàm biến con trỏ cục bộ bị hủy. Thế nên biến truyền vào chưa đc cấp phát :happy:
Code sau: cấp phát như mình, tức là cấp phát cho chính vùng nhớ của con trỏ truyền vào. Thế nên ra khỏi hàm con trỏ truyền vào có giá trị (tức là vùng nhớ mới đc cấp phát).
Leave a comment:
-
Originally posted by 11520327 View Postphần tiếp theo của bài viết " con trỏ trong C".
đoạn code:
PHP Code:#include<stdio.h>
#include<conio.h>
void Tag(int *a)
{
a=new int();
};
int main()
{
int *p=NULL;
Tag(p);
*p=6;
printf("%d", *p);
getch();
return 0;
}
xin các bạn lưu ý là mình chỉ thảo luận về con trỏ, những nội dung khác không liên quan đến phần này, xin viết ở topic khác.
Nếu kiểu của đối số và kiểu của tham số truyển vào khi gọi hàm là giống nhau thì bạn đã truyển tham trị chứ không phải truyền tham chiếu, ở đây khi bạn gọi hàm Tag(p) tức là bạn đã truyền tham trị, những gì thực hiện trong hàm Tag sẽ không ảnh hưởng gì đến p, do đó khi thực hiện đến lệnh tiếp theo là *p=6 sẽ bị báo lỗi.
Leave a comment:
-
void Tag(int **a)
{
(*a) = new int();
}
void Tag(int* &a)
{
a = new int();
}
phần giải thích đâu a? tại sao đoạn code đầu sai, tại sao 2 giải pháp trên đúng?Last edited by 11520327; 04-10-2012, 10:32.
Leave a comment:
-
Theo mình chương trình nay lỗi.
Muốn in ra giá trị 6, thì phỉa ntn:
void Tag(int **a)
{
(*a) = new int();
}
or
void Tag(int* &a)
{
a = new int();
}
Leave a comment:
-
con trỏ trong C phần 2 - và các phần tiếp theo
phần tiếp theo của bài viết " con trỏ trong C".
đoạn code:
PHP Code:#include<stdio.h>
#include<conio.h>
void Tag(int *a)
{
a=new int();
};
int main()
{
int *p=NULL;
Tag(p);
*p=6;
printf("%d", *p);
getch();
return 0;
}
xin các bạn lưu ý là mình chỉ thảo luận về con trỏ, những nội dung khác không liên quan đến phần này, xin viết ở topic khác.Last edited by 11520327; 06-10-2012, 09:01.Tags: None
Leave a comment: