[질문] 배열에 data를 입력하는 방법
안녕하세요.
C code에서
char 형의 배열에는 다음과 같이 내용을 입력할 수도 있습니다.
char *char_array;
char_array="abcd";
두번째 줄에서 {'a','b','c','d'}의 배열이 메모리에 할당되고 배열의 처음 주소가 char_array에 저장됩니다. 이를 다르게 보면, "abcd"의 ""에 의해서 배열의 메모리가 할당되고, 거기에 data가 저장되며, "" 자체는 배열의 처음 주소를 나타내게 됩니다. 참 편리한 기능인 것 같습니다.
int나 float 형에 대해서도 이와 유사한 방법이 있으면 좋겠습니다. 제가 이런 생각을 하는 것은 c code에 좌표나 벡터 같은 다차원의 수를 사용하고 싶기 때문입니다. 예를 들어,
int math_function(int *vector1, int *vector2)
main()
{ math_function({2,3,4},{3,5,6}); }
같이 배열을 보통 숫자와 유사하게 사용하는 것입니다.
물론, 앞에서 말했듯이 문자 배열은 ""를 통해서 문자들의 묶음을 한 문자처럼 사용할 수 있습니다.
char math_function(char *vector1, char *vector2)
main()
{ math_function("abc","def"); }
와 같은 것이 가능합니다.
vector라는 함수를 정의해서 사용해도 되지만, 여러 차원을 표현하기 위해서는 가변인수함수를 사용해야 하는 등등의 문제가 있습니다.
그냥, a={1,2,3} 이나 funtion({2,3,4},{2,3}) 과 같이 배열을 쉽게 사용할 수 있는 방법을 알고 있으면 알려 주세요.
음
int a[5] = { 1, 2, 3, 4, 5}
int b[3][5] = {
{ 1, 2, 3, 4, 5},
{ 1, 2, 3, 4, 5},
{ 1, 2, 3, 4, 5}
}
질문했던 사람입니다.
배열을 선언하면서 {}를 통해서 배열에 값을 입력할 수 있습니다.
하지만, 제가 원하는 것은 배열 선언 후에 배열에 값을 입력하는 것입니다.
제가 맞게 이해 했는지 자신이 없지만, 없는 것으로 알고 있습니다. 있어
제가 맞게 이해 했는지 자신이 없지만, 없는 것으로 알고 있습니다. 있어도 속도가 문제가 있는 것 같습니다. 그래서 무지막지한 숫자를 계산해야 한다거나 할때는 나누고 붙이고 하는 것을 직접 코딩해서 하더군요. (주로 연구실, 학교에서)
혹시 C++ 로 바꾸실 수 있는 상황인가요?C++ 라면 C와 비교
혹시 C++ 로 바꾸실 수 있는 상황인가요?
C++ 라면 C와 비교해서 속도도 떨어지지 않으면서 괜찮은 표현 방법을 찾으실 수 있을텐데요... 아래정도의 수고만 하신다면 쓰시고자 하시는 목적에 부합되지 않을까 합니다.
물론 템플릿을 더 적극적으로 활용해서 아래 코드의 상수들의 계산 같은 경우 컴파일시 계산완료하는 방법도 있습니다.
댓글 달기