Inicjalizowanie tablic

0

Jak wygląda inny sposób inicjalizowania tablicy niż taki :

 int tablica[1000]; 

. Robiło się to jakoś z nawiasami okrągłymi, ale nie moge tego znaleźć. Bardzo prosze o pomoc.

1

Czy na pewno chodzi ci o inicjalizowanie? W tym co podałeś - brak inicjalizowania. To są inicjalizowania:

int tablica[]={1,2,3};
int tablica[10]={0};
3

Pewnie chodzi Ci o dynamiczną alokację:

int* tablica = malloc(sizeof(*tablica) * liczba_elementów);
0

Patrzcie co wymyśliłem ;P

tab.nasm

 
global _deklaruj
section .text
_deklaruj:
	pop ebx
	pop ecx
	
	mov eax, esp

	sub esp, ecx

	push ebx
	ret

main.c

#include <stdio.h>

extern int *deklaruj(int);

int main(void){

    int *t;

    t = deklaruj(10*sizeof(int));

    size_t i;
    for (i = 0; i < 10; i++){
            t[i] = i;
    }

    for (i = 0; i < 10; i++){
            printf("%d ", t[i]);
    }

    return 0;
}
 
nasm -fwin32 tab.nasm
gcc main.c tab.obj 
0

A czym to się różni od zwykłego mainstreamowego: int t[10]; czy oprócz:

  • braku mainstreamowości
  • nieprzenośności
  • sporej szansy na pomyłkę
    ma jeszcze jakieś "zalety"?
1

Brawo, wynalazłeś _alloca() :-)

https://msdn.microsoft.com/en-us/library/wb1s57t5.aspx

1 użytkowników online, w tym zalogowanych: 0, gości: 1