-
Thread
malloc() Programm terminiert nicht
Gibt einlesen_size() denn das richtige zurück (Dateigröße / sizeof(int))? Und: Felix W. schrieb im Beitrag #6335498: > free(ptr); Eine Datei schließt man mit fclose(), nicht mit free().
[c] array = malloc( size * sizeof(*array)) [/c] Im C Standard wird dir garantiert das sich jeder Pointer nach (void *) und wieder zurück casten lassen kann, ohne Eigenschaften zu verlieren. Das heißt in diesen Fall, das der cast
-
Thread
malloc() return Array (Programm terminiert nicht)
Arraydefinition über malloc()* *******************************/ array = (int *) malloc(size * sizeof(int)); if (array == NULL) { printf("Speicher voll!\n"); printf("Bitte Programm neustart.\n"); return 0; } /********************************** * Füllen des Arrays mit
-
Thread
Probleme mit NXP LPC845 und die USART Ports
World"; usart_transfer_t test_data; test_data.data = string; test_data.dataSize = sizeof(string); PRINTF("sending test.\n\r"); USART_TransferSendNonBlocking (baseAddress[1], &usart[1], &test_data); USART_TransferSendNonBlocking (baseAddress[2], &usart[2], &test_data);
-
Thread
[AVR, C] Arrayzugriff aus Interrupt
das man array und index vertauschen kann) Daher &array[SIZE] oder array+SIZE oder array+sizeof(array)/sizeof(*array) was aber nur im Scope funktioniert, in dem auch array definiert ist.
Dirk B. schrieb im Beitrag #6331337: >> ... oder array+sizeof(array) > > Nein, weil sizeof Bytes liefert, die Arrayarithmetik aber die Größe > eines Elements berücksichtigt. Uuups, stimmt ;-) Na dann so array+ (sizeof(array)/sizeof(Datentyp))
-
Thread
Advance Serial Buffer
; static BYTE mem_tx[1000]; /* die buffer initialisieren */ ASBrx=ASBCreate(mem_rx, sizeof(mem_rx)); ASBtx=ASBCreate(mem_tx, sizeof(mem_tx)); /* und den Rest */ ... } [/c] Darüber solltest du nochmal nachdenken . . . Alles in allem sehr nebulös und eher
-
Thread
433 Funksteckdose mit RFM69 steuern
rf69.spiWrite(RH_RF69_REG_38_PAYLOADLENGTH, 0); } void loop() { rf69.sendRaw(dataON, sizeof(dataON)); rf69.waitPacketSent(); } [/code] Die SendRaw Funktion habe ich selber in die RadioHead Library eingebaut und sieht so aus: [code] bool RH_RF69::sendRaw(const uint8_t* data, uint8
verwende ich folgend Code im loop: [code] setOpMode(RH_RF69_OPMODE_MODE_RX); uint8_t buf[sizeof(RH_RF69_MAX_MESSAGE_LEN)]; // RH_RF69_MAX_MESSAGE_LEN uint8_t len = sizeof(buf); uint8_t readLength = rf69.readFifoTest(buf, len); //Serial.print("got reply: "); for (int i =
-
Thread
STM32 UART buffer rx
void Daten_Holen(RS232 *_rs232) { HAL_UART_Receive_IT(_rs232->RS232_HT,_rs232->buffer_uart, sizeof(_rs232->buffer_uart)); for(uint8_t i = 0; i < sizeof(_rs232->buffer_uart); i++) { if(_rs232->buffer_uart[i] == 0x0A) { for(uint8_t i = 0; i < sizeof(_rs232->buffer_uart);
_rs232->buffer[i] = _rs232->buffer_uart[i]; } for(uint8_t i = 0; i < sizeof(_rs232->buffer_uart); i++) { _rs232->buffer_uart[i] = ' '; } } } } [/c] Leider klappt das mit der Startadresse nicht und das Löschen des buffers klappt auch nicht
-
Thread
[STM32/CLion] snprintf verursacht HardFault
Init(); MX_TIM1_Init(); // Testaufruf von snprinft char buffer[64]; snprintf(buffer, sizeof(buffer), "%d", 12); // <<-- HardFault while (1) { } } void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
-
Thread
SPI mit NRF24L01 auf Breadboard unauffällig. Auf PCB nur Probleme
{ unsigned long zuUebertrageneVariable = 1; if (!radio.write(&zuUebertrageneVariable, sizeof(unsigned long))) Uebertragungsfehler ++; Serial.print(millis()); Serial.print(": "); Serial.println(Uebertragungsfehler); delay(100); } [/c] Dieses Lief auf dem Breadboard 17 Minuten
-
Thread
C++ Template Meta pass_by_auto überprüfen.
template <typename T> struct pass_by_auto { typedef typename when < sizeof (void*) <= sizeof (T) , T , T const& > :: type type; }; template <typename T> void f (typename pass_by_auto <T> :: type t) { cout << sizeof
praktischer: [C] template <typename T> using pass_by_auto = std::conditional_t< sizeof (void*) <= sizeof (T) , T , T const& >; template <typename T> void f (pass_by_auto <T> t) { }[/C]
-
Thread
Rheinturm Uhr Startzeit Problem
;} unsigned long TIMEREAD(void){return millis()-t0;} void setup() {int i; for(i=0; i<sizeof(oneSecond);i++)pinMode(oneSecond[i],OUTPUT); for(i=0; i<sizeof(tenSecond);i++)pinMode(tenSecond[i],OUTPUT); for(i=0; i<sizeof(theSwitch);i++)pinMode(theSwitch[i],OUTPUT); digitalWrite(A0, HIGH);
HIGH); digitalWrite(A2, HIGH); } void loop() {int i; t=TIMEREAD(); do {for(i=0;i<sizeof(oneSecond);i++)digitalWrite(oneSecond[i],s1<=i?LOW:HIGH); //EINERBAND SEKUNDEN for(i=0;i<sizeof(tenSecond);i++)digitalWrite(tenSecond[i],s10<=i?LOW:HIGH); //ZEHNERBAND SEKUNDEN digitalWrite
-
Thread
C++ program return an array
the gradient // is also zero. This should be probably improved in the future. //int n = sizeof(x)/32; for (int i = 0; i < n1*4; i++) { for (int j = 0; j < n1*4; i++) { if (i != j) { //cout << x[i]<< endl;
main() { // Coordinates of the rectangles double x[] = {0,6,0,9,3,9,4,11}; int n1 = sizeof(x)/32; double gradient; gradient = Gradient(x,n1); cout << "Gradient R1 xmin = " << Gradient[0] << endl; }
-
Thread
SPI am STM32F103 funktioniert nicht wie gewünscht
SPI_w: %x %x %x %x %x ", data[0], data[1], data[2], data[3], data[4]); memcpy(uartTXbuffer,buffer,sizeof(buffer)); CDC_Transmit_FS(uartTXbuffer,n+1); HAL_SPI_TransmitReceive(&hspi1, data, data, 5, 100); // <--------------------------------------------------- n = sprintf (buffer, "SPI_r: %x %x %x %x %x\n\n", data[0], data[1], data[2], data[3], data[4]); memcpy(uartTXbuffer,buffer,sizeof(buffer)); CDC_Transmit_FS(uartTXbuffer,n+1); } [/c] Der Master (STM32) senden 5 bytes zum Slave (TMC5160), gleichzeitig sendet der Slave 5 bytes zurück (Status). Das erste Byte ist die Adresse
-
Thread
"printf" for small pockets || für ganz arme uC
[c] #define PRINTBIN_TYPE uint16_t void printBin(PRINTBIN_TYPE val) { for (uint8_t i=0; i!=sizeof(val)*8; val<<=1,i++) { if (i && !(i % 4)) putc(' '); putc(val & (1<<(sizeof(val)*8-1)))? '1' : '0'); } } [/c]
Review komme, dann könnte es "kitzlig" werden ... :-) [c] #define mPrintBin(val) printBin(val, sizeof(val)) void printBin(uint32_t val, uint8_t sizeofVal) { for (uint8_t i=0; i!=sizeofVal*8; val<<=1,i++) { if (i && !(i%4)) printf("%c", ' '); printf("%c", (val & (1<<(sizeofVal*8-1
-
Thread
STM32 SD-Karte und Cube
beim Erstellen oder Öffnen der Datei return -1; } res = f_write(&myFile, wtext, sizeof(wtext),(void *) &byteswritten); if (res != FR_OK) { // Fehler beim Beschreiben der Datei return -1; } f_close(&myFile); // Schliessen der Datei res = f_open(&
// Fehler beim Öffnen der Datei return -1; } res = f_read(&myFile, rtext, sizeof(rtext),(UINT*) &bytesread); if ((bytesread == 0) || (res != FR_OK)) { // Fehler beim Lesen aus der Datei return -1; } f_close(&myFile); // Schliessen der Datei
-
Thread
gcc linkercommandfile
für die Info. Das ist tatsächlich etwas schwach vom Linker... Ich habe gerade gesehen, dass es "sizeof" auch für den Linker gibt. Daher erlaube ich mir noch die Frage, kann man eventuell etwas in der Form schreiben? [code] .stack (ORIGIN(ram)+LENGTH(ram)-SIZEOF(.bss)-SIZEOF(.relocate)-4) { ... } .relocate (ORIGIN(ram)+LENGTH(ram)-SIZEOF(.bss)-SIZEOF(.relocate)) { ... } .bss (ORIGIN(ram)+LENGTH(ram)-SIZEOF(.bss)) { ... } [/code] Die Variante mit konstanter Stack Größe habe ich natürlich in der Hinterhand. @Nop Es ist nicht
-
Thread
Python, PDF an Browser senden, es kommt nur Müll
Das ist aber etwas komplett anderes. Introspektion gibt es zu einem gewissen Grad auch in c. sizeof, offsetof, alignof _Generic, static_assert, etc. Zwar nur zur compile-time, und nicht ganz so toll wie in einigen anderen statisch typisierten Sprachen, aber definitiv vorhanden. An Java sieht man,
Das ist aber etwas komplett anderes. Introspektion gibt es zu einem > gewissen Grad auch in c. sizeof, offsetof, alignof _Generic, > static_assert, etc. Zwar nur zur compile-time, und nicht ganz so toll > wie in einigen anderen statisch typisierten Sprachen, aber definitiv > vorhanden. An Java
-
Thread
stm32duino pinname datentyp
DocRaptor schrieb im Beitrag #6287966: > int size = sizeof(digitalPins); BTW: das gibt die *nicht* die Anzahl der Elemente im Array retuour. Du willst: [c] #define ARR_SIZE(arr) (sizeof(arr)/sizeof(arr[0])) [/c] leo
leo schrieb im Beitrag #6288112: > DocRaptor schrieb: >> int size = sizeof(digitalPins); > > BTW: das gibt die nicht die Anzahl der Elemente im Array retuour. > Du willst:#define ARR_SIZE(arr) (sizeof(arr)/sizeof(arr[0])) define war Gestern [c] template<typename
-
Thread
STM32 SPI Master<->Slave Kommunikation periodische Ausfälle
) { hspi->Instance->DR = *((uint16_t*) hspi->pTxBuffPtr); hspi->pTxBuffPtr += sizeof(uint16_t); hspi->TxXferCount--; /* Next Data is a reception (Rx). Tx not allowed */ txallowed = 0U; } /* Check RXNE flag */ if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE
*((uint16_t*) hspi->pRxBuffPtr) = (uint16_t) hspi->Instance->DR; hspi->pRxBuffPtr += sizeof(uint16_t); hspi->RxXferCount--; /* Next Data is a Transmission (Tx). Tx is allowed */ txallowed = 1U; } } [/code] Aus irgendwelchen Gründen wird hier kein neues Datum
-
Thread
Funktion, welches je nach Datentype der Eingangsvariablen anders reagiert - geht sowas ?
Vielleicht lässt sich auch was mit präprozessor-Makros machen und tricksen mit sizeof() oder so ;)
das angeben muss (oder überhaupt schon weiß, vielleicht ändert es sich ja) Für die Größe reicht sizeof, geschenkt. aber ob ich -1 oder 255 anzeigen soll, ist schon wichtiger. Wenn ich die Variablen MyIndex, MyCount und MyWhatever habe, möchte ich vielleicht einfach Add(MyCount), Add(MyIndex),
-
Thread
bool: Größe bei arm-none-eabi c/c++
Schau doch einfach mit "sizeof(bool)" nach, wie Dein Compiler das implementiert. Ich würde bool einfach verwenden wie es ist.
-
Thread
"Hilfe beim Programmieren" !
toupper(getchar())) != EOF) { if (isspace(c)) putchar('\n'); else if ((c -= 33) < sizeof tab && (m = tab[c])) { do putchar(".-"[m & 1]); while ((m >>= 1) > 1); putchar(' '); } } } [/c] Für die Ausgabe über einen Buzzer müssen die drei putchar-Aufrufe
-
Thread
Pointer Größe nur 4 Byte bei 64 Bit Betriebssystem
steht folgendes: [code]Ein Zeiger ist eine Variable, die eine Adresse speichert. Wird der Operator sizeof auf ein Feld angewendet (sizeof(feld)), erhält man den Speicherverbrauch des Feldes in Bytes. Wird der Operator sizeof auf einen Zeiger angewendet, erhält man die Anzahl der Bytes, die zur Spei-
Simon schrieb im Beitrag #6261519: > printf("Groesse von ptr = %d", sizeof(ptr)); probiere mal mit [c] printf("Groesse von ptr = %zu", sizeof(ptr)); [/c]
-
Thread
Was passiert da in einem ESP8266 (12E)?
2 // RTC-Memory auslesen und validieren ESP.rtcUserMemoryRead(0, (uint32_t *) &rtc.data, sizeof(rtc.data)); if (calculateCRC32((uint8_t*) &rtc.data.data[0], sizeof(rtc.data.data)) == rtc.vars.crc32) { old_awake_time = rtc.vars.awake_time; rtc_valid = true; } else { old_awake_time
-
Thread
UDP Client IP ändern
; memset(clientAddr.sin_zero, '\0', sizeof clientAddr.sin_zero); /*-----------------------------------------*/ /*Bind socket with address struct*/ bind(udpSocket, (struct sockaddr *) &serverAddr, sizeof(serverAddr)); /*Initialize
clientAddr.sin_addr.s_addr = inet_addr("192.168.40.170"); sendto(udpSocket,"#OK",3,0,(struct sockaddr *)&clientAddr, sizeof(clientAddr)); da reagiert der Client leider nicht :-( PS. das C++ Projekt läuft auf einem RasPi
-
Thread
[Hypothetisch] Implikationen einer hash Umkehrfunktion
für ein A ungefähr 256 Lösungen für B (bei gleicher Länge), geben. Also immer ungefähr 256 hoch (sizeof(B)-sizeof(h)) Möglichkeiten. Also sehr schnell sehr viele. Interessanterweise scheint es in der Wildbahn aber praktisch keine bekannten sha256 Kollisionen zu geben. Das bringt mich zu der folgenden