Because d is the output of a softmax, the sum of d is always 1 by definition no matter what you input. The gradient of a constant function is 0. You could try taking c[0].backward() for something more interesting.
Best regards
Thomas