Jestem początkujący w C i naprawdę potrzebuję skutecznej metody, aby ustawić wszystkie elementy tablicy równe zero lub dowolną taką samą wartość. Moja tablica jest za długa, więc nie chcę tego robić z pętlą for.Jak ustawić wszystkie elementy tablicy na zero lub dowolną taką samą wartość?
Odpowiedz
Jeśli tablica ma statyczny przydział pamięci, jest domyślnie inicjalizowana do zera. Jeśli jednak tablica ma automatyczną alokację pamięci, możesz po prostu zainicjować wszystkie jej elementy na zero przy użyciu listy inicjalizatorów macierzy, która zawiera zero.
// function scope
// this initializes all elements to 0
int arr[4] = {0};
// equivalent to
int arr[4] = {0, 0, 0, 0};
// file scope
int arr[4];
// equivalent to
int arr[4] = {0};
Należy pamiętać, że nie istnieje standardowy sposób, aby zainicjować elementy tablicy na wartość inną niż zero używając listy inicjująca, która zawiera pojedynczy element (wartość). Musisz jawnie zainicjować wszystkie elementy tablicy za pomocą listy inicjalizatora.
// initialize all elements to 4
int arr[4] = {4, 4, 4, 4};
// equivalent to
int arr[] = {4, 4, 4, 4};
Standardowa (c99) definicja zgodna 'int x [] = {1, 3, 5}; 'nie liczy się jako inicjalizacja w jednej instrukcji? –
@PeterSchneider Dzięki. Poprawiłem mylącą linię. – ajay
Inicjalizacja jest już omawiana wiele razy. Pytanie brzmi: w jaki sposób przypiszesz te same wartości do tablicy? – overexchange
Jeśli twoja macierz jest statyczna lub globalna, inicjalizowana jest do zera przed uruchomieniem funkcji main(). To byłaby najskuteczniejsza opcja.
int myArray[10] = { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 }; // All elements of myArray are 5
int myArray[10] = { 0 }; // Will initialize all elements to 0
int myArray[10] = { 5 }; // Will initialize myArray[0] to 5 and other elements to 0
static int myArray[10]; // Will initialize all elements to 0
/************************************************************************************/
int myArray[10];// This will declare and define (allocate memory) but won’t initialize
int i; // Loop variable
for (i = 0; i < 10; ++i) // Using for loop we are initializing
{
myArray[i] = 5;
}
/************************************************************************************/
int myArray[10] = {[0 ... 9] = 5}; // This works only in GCC
Możesz użyć zestawu, jeśli jesteś pewien długości.
Zestaw (ptr, 0x00, długość)
- 1. Czy lepiej ustawić pustą tabelę lub ustawić wszystkie elementy tabeli na zero?
- 2. sprawdź, czy wszystkie elementy tablicy mają tę samą wartość w Swift
- 3. sprawdzanie, czy cztery zmienne binarne mają taką samą wartość, nieoczywistą?
- 4. Czy istnieje sposób, aby wszystkie elementy w klasie wiersza miały taką samą wysokość?
- 5. Czy można uzyskać wartość TComboBoxEx na taką samą wysokość jak TComboBox?
- 6. Inicjalizuj listę z taką samą wartością boolową
- 7. Jak przekonwertować wszystkie elementy tablicy na liczbę całkowitą w JavaScript?
- 8. Jak ustawić ramkę UITextView na taką samą, jak kolor ramki UITextField
- 9. Jak ustawić wysokość jednego komponentu układu na taką samą wysokość innego komponentu?
- 10. Jak odbarwiać wszystkie elementy tablicy naraz?
- 11. Jak ustawić dowolną macierz przekształceń w widoku?
- 12. Pomnożyć wszystkie elementy w tablicy
- 13. Zmień wszystkie elementy tablicy zawierające określony ciąg
- 14. Kwadratura wszystkie elementy na liście
- 15. Domyślna lub początkowa wartość tablicy enum java
- 16. Policz tę samą wartość w tablicy
- 17. Jak ustawić taką samą szerokość do wprowadzania tekstu HTML i upuść WEJŚCIA
- 18. Jak wymusić, aby elementy listy zagnieżdżonej miały taką samą szerokość jak element listy nadrzędnej?
- 19. Dlaczego musimy ustawić zmienną __block na zero?
- 20. Jak ustawić sekundy na zero dla NSDate
- 21. Sprawdź, czy wszystkie elementy mają tę samą klasę
- 22. Dlaczego podział na `(?! ^)` I `(? <! ^)` Dają taką samą odpowiedź?
- 23. Linq Zaznacz wszystkie elementy pasujące do tablicy
- 24. numpy funkcja ustawić elementy tablicy do wartości danej lista indeksów
- 25. D3.js wiele osi Y z taką samą pozycją tyknięć?
- 26. Czy konwersja float na podwójne i powrót do pływaka dać taką samą wartość w C++
- 27. Instrukcje SSE, aby dodać wszystkie elementy tablicy
- 28. Jak sprawdzić WSZYSTKIE elementy tablicy boolowskiej są prawdziwe
- 29. Czy niezainicjalizowane elementy konstrukcyjne zawsze mają wartość zero?
- 30. Jak zachować szerokość piksela QPen taką samą przy powiększaniu QGraphicsView
Po prostu zapytaj - czy rzeczywiście próbowałeś użyć pętli? Często niepokój związany z wydajnością jest bezpodstawny. Ile elementów ma twoja tablica? Jak często będzie inicjowany? (Jak omówiono w odpowiedziach, będzie to konieczne tylko wtedy, gdy elementy tablicy mają zostać zainicjowane wartością inną niż 0.) –