Question1:
struct S
{
   size_t size;
   int j;
   int k;
   int l;
};
S s={sizeof(S)};
Doest C++ standard say,the above {} will initialize "j,k,l" to 0? Seems it will do, is it part of cpp standard?
Question2:
int main()
{
    int* pi=new int[5];
    for(int i=0;i<5;++i)
        cout<<pi[i]<<',';
    return 0;
}
Here the elements in pointer to array(pi) are not initialized, my running result may look like
6785200,6782912,0,0,0,
But if I change it to
int main()
{
    int* pi=new int[5]();//use ()
    for(int i=0;i<5;++i)
        cout<<pi[i]<<',';
    return 0;
}
Then, all pi elements are "0". Seems "()" will give elements a "0" value. Is this part of cpp standard?
I also tried to give another value using "()" like this:
int* pi=new int[5](7);
But it fails compilation. How could I give initialization values to an pointer to array with all elements having same value?
 
     
     
    