Witam! mam taki problem, otóż chciałbym napisać program w C++, który umożliwi modyfikowanie tablic np. tablica ma wartość 000010 , funkcja ta by zamieniała wartość na 111111.
oto mój kod
float tab[10];
void *wsk = static_cast(&tab);
Chiałbym aby ta funkcja przyjmowała właśnie ten argument typu *void, liczbę oznaczającą liczbę bajtów oraz wartość określająca co przypisać każdemu bajtowi.
Proszę o pomoc ponieważ nie mam pojęcia jak napisać taką funkcję.
WOJEK64 , nie to że nie załapałeś o co chodzi, to się akurat zdarza, a to że podajesz fragmenty kodu który nie może się skompilować i to widać na pierwszy rzut oka, nawet nie wspominam o tym że po naprawieniu błędów ten kod nie da się użyć w jakikolwiek sposób.
W ten sposób masz dostęp do poszczególnych bajtów. pamiętaj o Little-endianowości.
Ja w podobny sposób napisałem klasę obsługującą nawet kilkuset bajtowe liczby i mogącą je sumować Niezbyt optymalne, bo to trwało prawie sekundę. Takie rzeczy to w Assembnelrze.
“Usuwasz” to na co wskazuje ptr za pomocą operatora delete[]. Tylko, że nie alokowałeś tego operatorem new[]. Nie mam teraz czasu szukać co pisze na ten temat standard, ale podejrzewam, że zachowanie jest niezdefiniowane.
Działa dopóki nie będzie większego projektu. Skoro nie przydzielasz pamięci pod tablice dynamicznie to nie ma sensu (a nawet niebezpiecznie) ją zwalniać.