malloc 함수 질문입니다
찬솔
질문 제목 : malloc 함수 질문입니다질문 내용 :
#include iostream
using namespace std;
void function(int i);
int main()
{
int m=0;
cout 입력 : ;
cin m;
function(m);
return 0;
}
void function(int i)
{
int* arra = (int*) malloc(sizeof(int)*i);
int j;
if(arra == null)
{
cout 메모리 할당 endl;
exit(1);
}cout arra , *arra , &arra endl;for(j=0;ji;j++)
arra[j]=j+1;
for(j=0;ji;j++)
cout arra[j];
cout endl;;
free(arra);
}
-----------------------------------------------
int* arra = (int*) malloc(sizeof(int)*i);
(sizeof(int)*i)의 바이트 수 만큼 (int*)으로 타입캐스팅 해서 int* arra 에 대입 해라
이게 제대로 이해 한게 맞는가요?
이 코드에서는 m에 입력 받은 수만큼 배열의 길이를 동적으로 할당 받는 코드 같은데
만약에 7이라는 수를 입력하면 arra의 값은 arr = malloc(4*7)해서 28이되는건가요?
이해가 잘 안되서
소스 중간에
cout arra , *arra , &arra endl;
이렇게 arra 값을 출력 해봤는데
00291730, -842150451, 0012f6f0
이런결과가 출력 됩니다
첫번쨰와 3번째 결과는 매번 다르게 결과가 출력되는데
가운데 있는 수치는 고정이더군요. (똑같이 7을 입력했을떄)
int* arra = (int*) malloc(sizeof(int)*i);
이 부분이 가장 이해가 안되는것 같습니다.
책에는 메모리의 첫번째 주소를 리턴 한다고 하는데 그렇다면 값을 출력할때arra의 값만 따로 출력했을때는 28이 나와야
하지 않습니까?
sizeof(int) = 4 , i=7 이니까 둘을 곱하면 28 이자나요.
그런데 값을 출력하면 -842150451 이걸로 나오니 제가 무엇인가를 잘못 이해 하고 있는것 같습니다.
도와주세요
-
ComeOn 2023-12-27
-843...그 값은 쓰레기값입니다. 동적할당하고 *arr가 가르키는 값이 없잖아요.
그냥 arr라고 출력하시면 됩니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2690749 | 피라미드 질문드립니다 (for문 한개) | 도래솔 | 2025-04-07 |
2690718 | 함수 포인터반환 함수 질문 | 에드워드 | 2025-04-07 |
2690685 | 2중for문 도와주세여..;; | 흰추위 | 2025-04-07 |
2690655 | 팩토리얼 계산문제..질문~ (9) | 옆집꼬마야 | 2025-04-06 |
2690627 | c 변수 선언후 변수값 저장안하고 출력 | 방방 | 2025-04-06 |
2690600 | 릴리즈 모드로 컴파일해서 다른 컴퓨터에서도 실행파일을 실행할수 있는 방법 알려주세요 (5) | 제나 | 2025-04-06 |
2690576 | bin파일 저장 | 다올 | 2025-04-06 |
2690547 | C언어 뒷부분이라 너무 어려워서요;; 프로그래밍 하나만 부탁드립니다 (4) | 그루터기 | 2025-04-05 |
2690517 | cygwin에서요.. (1) | 엘보어 | 2025-04-05 |
2690486 | 문자열과 문자형이요 ~ | 다스리 | 2025-04-05 |
2690344 | 일본어 주석 깨짐 문제 (3) | 연하얀 | 2025-04-04 |
2690314 | 암호문 만들기 -비제네르- | 이퓨리한나 | 2025-04-03 |
2690292 | 왕초보자의 질문!!!!!! 도와주세요 (1) | 하랑 | 2025-04-03 |
2690269 | 정올 문제 인데.. 흠 | 반월 | 2025-04-03 |
2690237 | sizeof에서 short형을 썻는데 왜 4byte가 나올까요? (1) | 바나나 | 2025-04-03 |
2690183 | 문자열과 포인트 비교 (2) | 미즈 | 2025-04-02 |
2690154 | a -48 ? | 희미한눈물 | 2025-04-02 |
2690094 | 테트리스 질문요. | 지후 | 2025-04-01 |
2690066 | 문자열비교!! (1) | 매디 | 2025-04-01 |
2689888 | 좀도와주세요;; ㅠㅠ | 사람 | 2025-03-30 |