#include <stdio.h>
int* add(int a, int b)
{
int result = a + b;
return &result;
}
int main(void)
{
int* result = add(5, 6);
add(8, 7);
printf("%d", *result);
}
콘솔에 출력되는 값과 그 이유를 설명해 주세요!
#include <stdio.h>
int* add(int a, int b)
{
int result = a + b;
return &result;
}
int main(void)
{
int* result = add(5, 6);
add(8, 7);
printf("%d", *result);
}
콘솔에 출력되는 값과 그 이유를 설명해 주세요!
함수 안의 지역변수는 사라질 변수라 주소를 넘겨주면 앙대용 ㅇㅅㅇ
그래서 정답이 모조!?!?
int형 변수를 잡고 return address로 보내면 memory leak 발생해서 dyamic allocation 해야함 - dc App
딱봐도 지 숙제 올리면서 배끼는 새끼인데 그걸 꾸역꾸역 알려주네 ㅔㅋㅋ
잉 아닌뎅 ㅇㅅㅇ...
지난 글 보면 다 이런 레퍼토리로 답지 구하고 있구만 뭘 아님?
진지하게 이딴 수준의 문제도 인터넷에 올릴 정도의 지능이면 IT업계는 오지 말아줬으면 함
다 내가 정답 썻자나... 제대로 봤냠 딱꾹 형이 답글 써준건 넘 깔끔해서 설명 안적긴했다
저가 아래에 설명 달음 ㅋㅅㅋ 읽어보세용!
쏘리 가끔 지 과제 물어보러 오는애들 있어서 그런앤가 싶어서 깠는데 생각해보니 개강시즌이 아니긴 하네
segmentation fault 떠요
엥 그럴리가 없는데 딴 언어는 몰라도 C언어는 될텐뎅
방금 돌려봄
저 비주얼스튜디오로 했는데 제대로 나와용!!
ubuntu gcc로 printf("%d", *result);에서 터짐
그 컴파일러는 안써봐서 모르겠네용...
C 포인터와 활용 보라색 새 그려진 책 이었나? 몇년전에 본건데 이거보니까 추억돋네 ㅅㅂㅋㅋㅋㅋ - dc App
크크 풀어보세용!!!
쉽게풀어쓴 C언어 express인가 ㅇㅅㅇ
팔 플러스 칠ㅇ이여
맞았음 이유까지도 아시나용 ?
그냥 스택때문 아님? 스택때문에 지녁변수가 같은 주수에 할당
아 오타 개많네
맞았음 님이 유일하게 푸셨어요 축하해용 짝짝 스택 메모리에서 해제될때 그 주소에 있는 값은 그대로 있기떄문에 해제된 주소의 값을 접근했더니 초기화 안된 15값이 있으니 그걸 가져오는거죠
내일 배울 내용들이네요 ㅎㅎ
포인터인가요 스택 메모리인가요 ? 둘다 잘 이해해보면 정말 아무것도 아닌것이에오! 포인터 배운다면 살짝 팁을 드리자면 포인터를 무언가를 가르킨다고 생각하지말고 주소의 값을 담는 자료형이라고 생각하는게 더 이해하기 쉬울거에요(난 그랬음!) *(역참조자, 포인터아님!) 를 쓰면 이제 그 주소의 값을 가져온다고 생각! int* num ( *가 붙으면 주소값을 할당하는 자료형으로 변신~~) *num (*가 붙으면 그 주소값의 값을 가져온다~~, 그냥 num을 쓰면 주소값을 담는 자료형이기에 주소가 나옴! 헷갈리지 말기)
그리고 살짝 TMI 하면 C언어에는 call by reference 라는 개념은 없읍니다 ㅋㅅㅋ 굳이 포인터를 말하자면 call by address 인데 call by value에 속함 근데 call by reference 처럼 동작해서 원본을 변경할수있져!