Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Quick C question



Don't use multidimensional arrays for image processing. You'll take  
huge speed hits and the compiler won't be able to optimize. Allocate  
a single dimensional N*M array and do the math to get to the pixels  
you need. You'll find it much easier to deal with in the long run.  
Not to mention for loops to deallocate the sub-arrays will get very  
old, very quickly.

Remember, C isn't Matlab.

-Josh

On Nov 16, 2005, at 10:54 AM, Anthony Gabrielson wrote:

> Thanks - That worked like a champ :).
>
> Anthony
>
> On Wed, 16 Nov 2005, Seth Gordon wrote:
>
>> Ooh!  Ooh!  Ooh!  Mr. Kotter!
>>
>>> #include <stdio.h>
>>>
>>> #define	D1	4
>>> #define	D2	2
>>>
>>> int main(){
>>>
>>> 	int *array;
>>
>> Here you're defining "array" as a pointer to an int.
>>
>>>
>>> 	array = malloc(sizeof(int) * (D1 * D2));
>>>
>>> 	array[1][1] = 32;
>>
>> Here you're using "array" as a pointer *to a pointer* to an int.
>>
>>>
>>> 	printf("Elem[1][1] = %d\n",array[1][1]);
>>> 	
>>> 	free(array);
>>>
>>> 	return 0;
>>> }
>>
>> Try changing "int *array" to "int **array".
>> _______________________________________________
>> Discuss mailing list
>> Discuss at blu.org
>> http://olduvai.blu.org/mailman/listinfo/discuss
>>
> _______________________________________________
> Discuss mailing list
> Discuss at blu.org
> http://olduvai.blu.org/mailman/listinfo/discuss





BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org