void - это не значение, которое нельзя использовать *((void*) x) = v;
, и использование приведения для использования указателя на другой тип опасно , поскольку размер может не совпадать
Но в вашем случае вы установили 0, поэтому вы можете использовать memset или заменить malloc my calloc и бесполезно иметь clean_buffer
:
int main(void)
{
float *pf;
int *pi;
pf = calloc(10, sizeof(float));
pi = calloc(10, sizeof(int));
return 0;
}
foreach(UserControl uc in plhMediaBuys.Controls) {
MyControl c = uc as MyControl;
if (c != null) {
c.PublicPropertyIWantAccessTo;
}
}
foreach(UserControl uc in plhMediaBuys.Controls)
{
if (uc is MySpecificType)
{
return (uc as MySpecificType).PulblicPropertyIWantAccessTo;
}
}
Я предпочитаю использовать:
foreach(UserControl uc in plhMediaBuys.Controls)
{
ParticularUCType myControl = uc as ParticularUCType;
if (myControl != null)
{
// do stuff with myControl.PulblicPropertyIWantAccessTo;
}
}
Главным образом, потому что использование является причинами ключевого слова два (квазидорогих) броска:
if( uc is ParticularUCType ) // one cast to test if it is the type
{
ParticularUCType myControl = (ParticularUCType)uc; // second cast
ParticularUCType myControl = uc as ParticularUCType; // same deal this way
// do stuff with myControl.PulblicPropertyIWantAccessTo;
}