[질문] 쿼리 결과의 데이터 크기를 알고싶습니다. 가능할까요?

maindb의 이미지

MySQL 과 C 입니다.

query 의 결과로 오는 result 가 여러줄일때 이 값들의 실제 크기를
구하고 싶습니다.
즉...

result = mysql_store_result(&mysql)

while( row = mysql_fetch_row(result) ){

printf("%s,%s",row[0],row[1]);
}

위와 같이 결과값을 순차적으로 print 하지 않고


while( row = mysql_fetch_row(result) ){

sprintf(tempstr,"%s,%s" row[0],row[1]);

strcat(putstr,tempstr);
}

printf("%s",pustr);

로 바꿀려고 하는데 putstr의 메모리를 잡으려고 합니다.

result 의 size를 알수 있는 방법이 있나요..

조언을 부탁드립니다.

nthroot의 이미지

해당 레코드 필드의 크기를 가져올 수 있습니다.
함수는 MySQL API에 보시면 있구요.
그것을 기준으로 잡으셔도 되구요.

그냥

char* buf = (char *)malloc(strlen(row[0])) ;

하시면 될것 같은데요.

------식은이 처------
길이 끝나는 저기엔 아무 것도 없어요. 희망이고 나발이고 아무 것도 없어.