C language2010. 6. 19. 23:21

#include <stdio.h>

double sum(double g[][3], int n);

void printarray(double g[][3], int n);

   

int main(void)

{

int i = 0;

double x[][3] = { {1,2,3},{7,8,9},{4,5,6},{10,11,12} };

   

int rowsize = sizeof(x) / sizeof(x[0]);

printf("2차원 배열의 자료값은 다음과 같습니다.\n");

printarray (x,rowsize);

printf("함수에서 구한 2차원 배열원소 합은 %3.1f 이다.\n",sum(x,rowsize));

   

return 0;

}

   

double sum(double g[][3], int n)//2차원배열 더하는 함수

{

int i;

int j;

double total = 0;

   

for(i = 0;i < n;i++)

{

for(j = 0;j < 3;j++)

{

total += g[i][j];

}

}

   

return total;

}

   

void printarray(double g[][3], int n)// 배열 출력함수

{

int i;

int j;

   

for(i = 0;i < n;i++)

{

printf("% d행 원소: ",i + 1);

for(j = 0;j < 3;j++)

{

printf("x[%d][%d] = %5.2lf ",i,j,g[i][j]);

}

printf("\n");

}

printf("\n");

}

   

   

'C language' 카테고리의 다른 글

업무일지(strlen함수 작성,각 메모리영역 설명)  (0) 2010.06.10
Posted by 해해해해해해해해
C language2010. 6. 10. 15:51

#include <stdio.h>

int strlen2(const char *p);

int main()
{
int inum;
inum = strlen2("test");
printf("%d",inum);


return 0;
}


int strlen2(const char *p)
{
int icnt;


for(icnt = 0;*p !=0;++icnt)
{
++p;
}

return icnt;

}

실행결과




heap,stack영역에 대한설명

#include <stdio.h>
#include <malloc.h>

int main()
{
char *p;
int *d;
d = malloc(100);

printf("P의 주소%p\t\n", &p);
printf("main의 주소%p\t\n", main);
printf("printf의 주소%p\t\n", printf);
printf("malloc의 주소%p\t\n", d);
printf("문자열의 주소%p\t\n", "abc");

return 0;
}


메모리영역에 대한 설명


동적할당을 받은 메모리의 주소를 포인터 변수에 저장하고 동적할당을 받은 메모리를 반환한다.

이 때 , 동적할당을 받았을 때 저장했던 주소에 값을 다시 쓸 수 있을까??

정답은 쓸 수 있다이다. 다만 오류가 날 수도 있다.

'C language' 카테고리의 다른 글

2차원배열을 이용,배열원소의 합구하는 프로그램  (0) 2010.06.19
Posted by 해해해해해해해해