the general solution of a PDE
Here is one of the genuine surprises of moving from ODEs to PDEs, and it is worth slowing down for. When you solve an ordinary differential equation, the general solution carries arbitrary constants — one for each order — and you pin them down with a few numbers (initial values). When you solve a partial differential equation, the general solution carries arbitrary FUNCTIONS, not just constants. The freedom is vastly larger, because you are free to choose along whole curves or surfaces, not just at a point.
The cleanest illustration is the transport equation u_t + c u_x = 0. Its general solution is u(x, t) = f(x - c t), where f is ANY differentiable function of one variable. You can check it: u_t = -c f'(x - c t) and u_x = f'(x - c t), so u_t + c u_x = 0 for every choice of f. The shape f is a whole profile that simply slides to the right at speed c. There is no single 'the' solution — there is a function's worth of solutions, and which one you have depends entirely on extra information. Likewise the one-dimensional wave equation has general solution u(x, t) = F(x - c t) + G(x + c t), two arbitrary functions: a right-mover plus a left-mover.
Because the freedom is so large, in practice you almost never write down the general solution and then specialise it — that is usually hopeless for realistic equations and geometries. Instead you state the extra conditions up front (initial data, boundary data) and solve the determined problem directly. This is the real reason boundary and initial conditions are not an afterthought in PDE but the heart of the matter: they are what convert an ocean of solutions into the one solution your physical situation actually has. The whole notion of a well-posed problem — existence, uniqueness, continuous dependence — is about supplying exactly the right amount of data to single out one sensible answer.
Transport: u_t + c u_x = 0 has general solution u(x, t) = f(x - c t) for arbitrary differentiable f. Add the initial condition u(x, 0) = sin(x) and f is forced to be sin, giving the unique solution u(x, t) = sin(x - c t). The arbitrary function became a specific one only after data was supplied.
A PDE's general solution holds an arbitrary function; initial or boundary data is what selects a single solution.
The contrast with ODEs is real and load-bearing: arbitrary constants (ODE) versus arbitrary functions (PDE). This is why 'just supply two numbers' never suffices for a PDE, and why most PDE solving is really the art of imposing the right boundary and initial conditions, not of writing a universal formula.