LINUX.ORG.RU

как к массиву массивов добавить массив как первый элемент в Си?


0

0

Объявлены они так:

double data[640], akf[640];
double massiv[480][640],umassiv[480][640];

...

и потом ниже я хочу заполнить первый массив massiv[0]

massiv[0] = data[cc];

[vilfred@mobile100 HalfWork]$ make
/usr/bin/perl /usr/lib/perl5/5.8.3/ExtUtils/xsubpp -typemap /usr/lib/perl5/5.8.3/ExtUtils/typemap HalfWork.xs > HalfWork.xsc && mv HalfWork.xsc HalfWork.c
Please specify prototyping behavior for HalfWork.xs (see perlxs manual)
gcc -c -I. -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -march=i386 -mcpu=i686 -DVERSION=\"0.01\" -DXS_VERSION=\"0.01\" -fPIC "-I/usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE" HalfWork.c
HalfWork.xs: In function `XS_HalfWork_getnum':
HalfWork.xs:41: error: incompatible types in assignment
make: *** [HalfWork.o] Ошибка 1
[vilfred@mobile100 HalfWork]$

☆☆

> double data[640], akf[640]; 
> double massiv[480][640],umassiv[480][640]; 

> и потом ниже я хочу заполнить первый массив massiv[0] 

> massiv[0] = data[cc];

Смотрите, что получается. massiv[0] -- это вектор (одномерный массив),
иными словами, double*. И вы указателю присваиваете скаляр (значение) 
data[cc].

Всё-таки придётся делать либо цикл вида massiv[0][cc]=data[cc], 
либо memcpy(massiv[0],data,640).

Obidos ★★★★★
()
Ответ на: комментарий от vilfred

У тебя двумерный массив, ты пытаешся в него одномерный запихнуть...

majordomo
()

блин, я балда!!! блин... массив приравнял к элементу массива... :(

Obidos

сделал как говоришь

memcpy(massiv[0],data,640)

оно оно сегфолт вываливает, ладно, я подолбаюсь, т.к. это не совсем С а xs, мож чего соображу...

Спасибо!

:(

vilfred ☆☆
() автор топика
Ответ на: комментарий от majordomo

ясно, я думал, что 480 - это число массивов, каждый из которых содержит по 680 элементов. короче это не перл... :(

придется через задницу... да еще и на сях...

vilfred ☆☆
() автор топика
Ответ на: комментарий от vilfred

массив массивов динамически так можно определить? и что такое функция daa() ?

double **array; array = (double **) daa();

vilfred ☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.